home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Graphics Programming (2nd Edition) / Visual Basic Graphics Programming 2nd Edition.iso / Src / Ch1 / Viewer.frm (.txt) < prev    next >
Visual Basic Form  |  1999-04-25  |  7KB  |  233 lines

  1. VERSION 5.00
  2. Begin VB.Form frmViewer 
  3.    Caption         =   "Viewer []"
  4.    ClientHeight    =   5685
  5.    ClientLeft      =   1140
  6.    ClientTop       =   1515
  7.    ClientWidth     =   8715
  8.    KeyPreview      =   -1  'True
  9.    LinkTopic       =   "Form1"
  10.    PaletteMode     =   1  'UseZOrder
  11.    ScaleHeight     =   5685
  12.    ScaleWidth      =   8715
  13.    Begin VB.VScrollBar vbar 
  14.       Height          =   1335
  15.       Left            =   3960
  16.       TabIndex        =   7
  17.       Top             =   0
  18.       Width           =   255
  19.    End
  20.    Begin VB.HScrollBar hbar 
  21.       Height          =   255
  22.       Left            =   2280
  23.       TabIndex        =   6
  24.       Top             =   1320
  25.       Width           =   1575
  26.    End
  27.    Begin VB.PictureBox picScroller 
  28.       Height          =   1215
  29.       Left            =   2280
  30.       ScaleHeight     =   1155
  31.       ScaleWidth      =   1515
  32.       TabIndex        =   4
  33.       Top             =   0
  34.       Width           =   1575
  35.       Begin VB.PictureBox picImage 
  36.          AutoSize        =   -1  'True
  37.          BorderStyle     =   0  'None
  38.          Height          =   975
  39.          Left            =   0
  40.          ScaleHeight     =   975
  41.          ScaleWidth      =   1335
  42.          TabIndex        =   5
  43.          Top             =   0
  44.          Width           =   1335
  45.       End
  46.    End
  47.    Begin VB.ComboBox cboPatterns 
  48.       Height          =   315
  49.       Left            =   0
  50.       TabIndex        =   3
  51.       Text            =   "Combo1"
  52.       Top             =   3600
  53.       Width           =   2175
  54.    End
  55.    Begin VB.DriveListBox drvDrives 
  56.       Height          =   315
  57.       Left            =   0
  58.       TabIndex        =   2
  59.       Top             =   0
  60.       Width           =   2175
  61.    End
  62.    Begin VB.DirListBox dirDirectories 
  63.       Height          =   1155
  64.       Left            =   0
  65.       TabIndex        =   1
  66.       Top             =   360
  67.       Width           =   2175
  68.    End
  69.    Begin VB.FileListBox filFiles 
  70.       Height          =   1845
  71.       Left            =   0
  72.       TabIndex        =   0
  73.       Top             =   1560
  74.       Width           =   2175
  75.    End
  76. Attribute VB_Name = "frmViewer"
  77. Attribute VB_GlobalNameSpace = False
  78. Attribute VB_Creatable = False
  79. Attribute VB_PredeclaredId = True
  80. Attribute VB_Exposed = False
  81. Option Explicit
  82. ' The user selected a directory. Tell the FileList
  83. ' control so it can list the files in it.
  84. Private Sub dirDirectories_Change()
  85.     filFiles.Path = dirDirectories.Path
  86. End Sub
  87. ' The user selected a drive. Tell the DirectoryList
  88. ' control so it can list the files in it.
  89. Private Sub drvDrives_Change()
  90.     On Error GoTo DriveError
  91.     dirDirectories.Path = drvDrives.Drive
  92.     Exit Sub
  93. DriveError:
  94.     drvDrives.Drive = dirDirectories.Path
  95.     Exit Sub
  96. End Sub
  97. ' The user selected a file. Display it if possible.
  98. Private Sub filFiles_Click()
  99. Dim fname As String
  100.     On Error GoTo LoadPictureError
  101.     fname = filFiles.Path & "\" & filFiles.FileName
  102.     Caption = "Viewer [" & fname & "]"
  103.     MousePointer = vbHourglass
  104.     DoEvents
  105.     picImage.Picture = LoadPicture(fname)
  106.     ArrangeScrollbars
  107.     MousePointer = vbDefault
  108.     Exit Sub
  109. LoadPictureError:
  110.     Beep
  111.     MousePointer = vbDefault
  112.     Caption = "Viewer [Invalid picture]"
  113.     Exit Sub
  114. End Sub
  115. ' Create the list of file patterns.
  116. Private Sub Form_Load()
  117.     dirDirectories.Path = App.Path
  118.     cboPatterns.AddItem "Bitmaps (*.bmp)"
  119.     cboPatterns.AddItem "GIFs (*.gif)"
  120.     cboPatterns.AddItem "JPEGs (*.jpg)"
  121.     cboPatterns.AddItem "Icons (*.ico)"
  122.     cboPatterns.AddItem "Cursors (*.cur)"
  123.     cboPatterns.AddItem "Run-Length Encoded (*.rle)"
  124.     cboPatterns.AddItem "Metafiles (*.wmf)"
  125.     cboPatterns.AddItem "Enhanced Metafiles (*.emf)"
  126.     cboPatterns.AddItem "Graphic Files (*.bmp;*.gif;*.jpg;*.jpeg;*.ico;*.cur;*.rle;*.wmf;*.emf)"
  127.     cboPatterns.AddItem "All Files (*.*)"
  128.     cboPatterns.ListIndex = 0
  129. End Sub
  130. ' Arrange the scrolling controls.
  131. Private Sub ArrangeScrollbars()
  132. Dim need_hgt As Single
  133. Dim need_wid As Single
  134. Dim got_hgt As Single
  135. Dim got_wid As Single
  136. Dim need_hbar As Boolean
  137. Dim need_vbar As Boolean
  138.     ' See which scroll bars we need.
  139.     need_wid = picImage.Width
  140.     need_hgt = picImage.Height
  141.     got_wid = ScaleWidth - picScroller.Left
  142.     got_hgt = ScaleHeight - picScroller.Top
  143.     ' See if we need the horizontal scroll bar.
  144.     need_hbar = (got_wid < need_wid)
  145.     If need_hbar Then
  146.         got_hgt = got_hgt - hbar.Height
  147.     End If
  148.     ' See if we need the vertical scroll bar.
  149.     need_vbar = (got_hgt < need_hgt)
  150.     If need_vbar Then
  151.         got_wid = got_wid - vbar.Width
  152.         ' See if we did not need the horizontal
  153.         ' scroll bar but we now do.
  154.         If Not need_hbar Then
  155.             need_hbar = (got_wid < need_wid)
  156.             If need_hbar Then
  157.                 got_hgt = got_hgt - hbar.Height
  158.             End If
  159.         End If
  160.     End If
  161.     If got_hgt < 120 Then got_hgt = 120
  162.     If got_wid < 120 Then got_wid = 120
  163.     ' Display the needed scroll bars.
  164.     If need_hbar Then
  165.         hbar.Move picScroller.Left, got_hgt, got_wid
  166.         hbar.Min = 0
  167.         hbar.Max = got_wid - need_wid
  168.         hbar.SmallChange = got_wid / 3
  169.         hbar.LargeChange = _
  170.             (hbar.Max - hbar.Min) _
  171.                 * need_wid / _
  172.                 (got_wid - need_wid)
  173.         hbar.Visible = True
  174.     Else
  175.         hbar.Value = 0
  176.         hbar.Visible = False
  177.     End If
  178.     If need_vbar Then
  179.         vbar.Move picScroller.Left + got_wid, 0, vbar.Width, got_hgt
  180.         vbar.Min = 0
  181.         vbar.Max = got_hgt - need_hgt
  182.         vbar.SmallChange = got_hgt / 3
  183.         vbar.LargeChange = _
  184.             (vbar.Max - vbar.Min) _
  185.                 * need_hgt / _
  186.                 (got_hgt - need_hgt)
  187.         vbar.Visible = True
  188.     Else
  189.         vbar.Value = 0
  190.         vbar.Visible = False
  191.     End If
  192.     ' Arrange the window.
  193.     picScroller.Move picScroller.Left, 0, got_wid, got_hgt
  194. End Sub
  195. ' Make the controls fill the form.
  196. Private Sub Form_Resize()
  197. Const GAP = 60
  198. Dim wid As Integer
  199. Dim hgt As Integer
  200.     If WindowState = vbMinimized Then Exit Sub
  201.     wid = drvDrives.Width
  202.     drvDrives.Move GAP, GAP, wid
  203.     cboPatterns.Move GAP, ScaleHeight - cboPatterns.Height, wid
  204.     hgt = (cboPatterns.Top - drvDrives.Top - drvDrives.Height - 3 * GAP) / 2
  205.     If hgt < 100 Then hgt = 100
  206.     dirDirectories.Move GAP, drvDrives.Top + drvDrives.Height + GAP, wid, hgt
  207.     filFiles.Move GAP, dirDirectories.Top + dirDirectories.Height + GAP, wid, hgt
  208.     ArrangeScrollbars
  209. End Sub
  210. Private Sub hbar_Change()
  211.     picImage.Left = hbar.Value
  212. End Sub
  213. Private Sub hbar_Scroll()
  214.     picImage.Left = hbar.Value
  215. End Sub
  216. ' The user has selected a file pattern. Apply it
  217. ' to the FileList box.
  218. Private Sub cboPatterns_Click()
  219. Dim pat As String
  220. Dim p1 As Integer
  221. Dim p2 As Integer
  222.     pat = cboPatterns.List(cboPatterns.ListIndex)
  223.     p1 = InStr(pat, "(")
  224.     p2 = InStr(pat, ")")
  225.     filFiles.Pattern = Mid$(pat, p1 + 1, p2 - p1 - 1)
  226. End Sub
  227. Private Sub vbar_Change()
  228.     picImage.Top = vbar.Value
  229. End Sub
  230. Private Sub vbar_Scroll()
  231.     picImage.Top = vbar.Value
  232. End Sub
  233.